// 引入医护人员服务
const staffService = require('../../services/staff');

Page({
  data: {
    departments: [], // 科室列表
    departmentIndex: 0, // 选中的科室索引
  },

  onLoad() {
    this.loadDepartments();
  },

  // 加载科室列表
  loadDepartments() {
    wx.showLoading({
      title: '加载中...',
    });

    // 直接使用wx.request绕过拦截器获取科室列表
    const app = getApp();
    const baseUrl = app.globalData.baseUrl || 'http://localhost:8080/api';
    
    wx.request({
      url: baseUrl + '/department/list',
      method: 'GET',
      success: (res) => {
        if (res.data && res.data.code === 200 && res.data.data) {
          const data = res.data.data;
          if (data.records && data.records.length > 0) {
            this.setData({
              departments: data.records,
              departmentIndex: 0
            });
          } else {
            // 如果没有科室数据，设置默认科室
            this.setData({
              departments: [{id: 1, name: '内科'}, {id: 2, name: '外科'}],
              departmentIndex: 0
            });
          }
        } else {
          // 接口返回错误，设置默认科室
          console.error('获取科室列表接口错误', res);
          this.setData({
            departments: [{id: 1, name: '内科'}, {id: 2, name: '外科'}],
            departmentIndex: 0
          });
        }
        wx.hideLoading();
      },
      fail: (err) => {
        console.error('获取科室列表请求失败', err);
        // 设置默认科室
        this.setData({
          departments: [{id: 1, name: '内科'}, {id: 2, name: '外科'}],
          departmentIndex: 0
        });
        wx.hideLoading();
      }
    });
  },

  // 科室选择器变更
  bindDepartmentChange(e) {
    this.setData({
      departmentIndex: e.detail.value
    });
  },

  // 医护人员注册
  staffRegister(e) {
    const { name, phone, password, confirmPassword, gender, title } = e.detail.value;
    const departmentId = this.data.departments[this.data.departmentIndex].id;

    // 参数验证
    if (!name || !phone || !password || !confirmPassword || !title) {
      wx.showToast({
        title: '请填写完整信息',
        icon: 'none'
      });
      return;
    }

    // 验证手机号格式
    if (!/^1\d{10}$/.test(phone)) {
      wx.showToast({
        title: '请输入正确的手机号',
        icon: 'none'
      });
      return;
    }

    // 验证密码长度
    if (password.length < 6) {
      wx.showToast({
        title: '密码不能少于6个字符',
        icon: 'none'
      });
      return;
    }

    // 验证两次密码是否一致
    if (password !== confirmPassword) {
      wx.showToast({
        title: '两次输入的密码不一致',
        icon: 'none'
      });
      return;
    }

    // 显示加载中
    wx.showLoading({
      title: '注册中...',
      mask: true
    });

    // 构建注册参数
    const registerData = {
      name,
      phone,
      password,
      gender: parseInt(gender),
      departmentId,
      title,
      role: 2 // 默认为医生角色
    };

    // 直接使用wx.request发送注册请求，绕过拦截器
    const app = getApp();
    const baseUrl = app.globalData.baseUrl || 'http://localhost:8080/api';
    
    wx.request({
      url: baseUrl + '/staff/register',
      method: 'POST',
      data: registerData,
      success: (res) => {
        wx.hideLoading();
        
        if (res.data && res.data.code === 200) {
          wx.showToast({
            title: '注册成功',
            icon: 'success',
            duration: 2000,
            success: () => {
              // 注册成功后跳转到登录页
              setTimeout(() => {
                wx.redirectTo({
                  url: '/pages/login/staff-login'
                });
              }, 2000);
            }
          });
        } else {
          // 注册失败，显示错误信息
          wx.showToast({
            title: res.data?.message || '注册失败，请重试',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        console.error('注册请求失败', err);
        wx.hideLoading();
        wx.showToast({
          title: '网络错误，请稍后重试',
          icon: 'none'
        });
      }
    });
  }
}); 